Blog

BoxLang 1.0.0 Beta 16 Launched

Jon Clausen September 27, 2024

Spread the word

Jon Clausen

September 27, 2024

Spread the word


Share your thoughts

Welcome to Beta 16! This release focuses on web support functionality and contains a number of improvements and bug fixes for HTTP operations, including multi-part file uploads and error handling. It also provides enhancements to Java interoperability, dump template output, and metadata introspection.

Overall, this beta release brings further stability for CFML applications migrating to BoxLang!

What is BoxLang?

BoxLang is a modern dynamic JVM language that can be deployed on multiple runtimes: operating system (Windows/Mac/*nix/Embedded), web server, lambda, iOS, android, web assembly, and more. BoxLang combines many features from different programming languages, including Java, CFML, Python, Ruby, Go, and PHP, to provide developers with a modern and expressive syntax.

It is also a drop-in replacement for Adobe ColdFusion and Lucee Engines.

How to get started?

Visit our docs at https://boxlang.ortusbooks.com and get coding today. If you want to try it out on the web then go to our online REPL at https://try.boxlang.io. You can also checkout our YouTube playlist: https://www.youtube.com/playlist?list=PLNE-ZbNnndB-40LvAbeSeT2Oi3V2gm_B8

Release Notes

Here are the latest release notes: https://boxlang.ortusbooks.com/readme/release-history/1.0.0-beta16

New Feature

BL-603 Implement timeout for HTTP requests

BL-604 Multi-part request support in HTTP

Improvement

BL-586 Add text-based toString() method for Queries (used in console dumps)

BL-589 for in Java transformer not mapping source line numbers for start of loop

BL-590 Make include case insensitive

BL-596 Enhance metadata visitor to process extends

BL-597 add fieldNames key to form scope

BL-599 Auto casting for URI and URL classes to string

BL-600 Handle bad gateways in HTTP component

BL-601 Allow for multiple form fields with the same name in HTTP component

BL-602 autocast InetSocketAddress to string

Bug

BL-584 Fix for overeager escaping of quantifier sequences in REFind

BL-585 High order closures creating incorrect AST when parsing

BL-587 Update DateTime Parsing to handle the Common Javascript Date.toString format

BL-588 Module settings no longer overriding after deep merge function added

BL-591 Java interop doesn't find method by argument types when passing null

BL-592 Can't assign to List due to incorrect validation in referencer

BL-593 content-type isn't always getting defaulted in some requests

BL-594 for/in loop over struct should get String keys instead of BL Key instances

BL-595 showUDFs not cascading down in dump levels

BL-598 using cfcookie should update cookie scope

BL-606 Fix argument order for FileUpload

Add Your Comment

Recent Entries

BoxLang 1.10.0: Functional Arrays, Elegant Loops & Distributed Locking

BoxLang 1.10.0: Functional Arrays, Elegant Loops & Distributed Locking

We're excited to announce BoxLang 1.10.0, a feature-packed release that brings powerful functional programming capabilities, elegant loop syntax, and enterprise-grade distributed locking to the BoxLang runtime. This release represents a significant leap forward in developer productivity and application scalability.

Luis Majano
Luis Majano
February 03, 2026
Ortus & BoxLang Jan Recap 2026

Ortus & BoxLang Jan Recap 2026

January kicked off with strong momentum across the Ortus Solutions ecosystem, bringing key product releases, major improvements to CommandBox and BoxLang, new cloud-focused learning resources, and exciting announcements for upcoming events.

Victor Campos
Victor Campos
February 02, 2026
BoxLang AI: The Foundation for Real-World AI Systems!

BoxLang AI: The Foundation for Real-World AI Systems!

BoxLang AI: From AI Experiments to Real-World Systems!

Why we built BoxLang AI?

AI is everywhere. New models, new tools, new announcements every week. But for most teams, the real challenge isn’t choosing ...

Victor Campos
Victor Campos
January 30, 2026
window.addEventListener("load", function() { document.querySelector('.career-job-card').addEventListener('click', function() { const details = this.querySelector('.career-job-details'); details.style.display = details.style.display === 'block' ? 'none' : 'block'; }); });